const express = require('express');
const cors = require('cors');
const apiRoutes = require('./routes/api');
const userRoutes = require('./routes/user');
const db = require('./db');

// 创建Express应用
const app = express();
const port = process.env.PORT || 1111;

// 中间件
app.use(cors());
app.use(express.json());

// 使用API路由
app.use('/api', apiRoutes);
// 使用用户路由
app.use('/api/user', userRoutes);

// 根路由
app.get('/', (req, res) => {
  res.json({
    message: 'ProtoQA API服务器',
    status: 'running',
    version: '1.0.0'
  });
});

// 启动服务器前测试数据库连接
async function startServer() {
  try {
    // 测试数据库连接
    const dbConnected = await db.testConnection();
    
    if (!dbConnected) {
      console.warn('无法连接到数据库，服务器将以有限功能模式启动');
      console.warn('某些需要数据库的功能可能不可用');
    } else {
      console.log('数据库连接成功');
    }
    
    // 启动服务器
    app.listen(port, () => {
      console.log(`服务器运行在 http://localhost:${port}`);
    });
  } catch (error) {
    console.error('服务器启动过程中发生错误:', error);
    console.warn('服务器将以有限功能模式启动');
    
    // 即使有错误也启动服务器
    app.listen(port, () => {
      console.log(`服务器运行在 http://localhost:${port} (有限功能模式)`);
    });
  }
}

// 启动服务器
startServer(); 